package br.com.jk.cotacao.lancamento;

import br.com.jk.cotacao.*;
import br.com.jk.cotacao.itens.CotacaoItens;
import br.com.jk.produto.Produto;
import br.com.jk.util.DAOException;
import br.com.jk.util.pesquisa.Pesquisa.Opcao;
import java.util.List;

/**
 *
 * @author camilo
 */
public interface CotacaoLancamentoDao {

  public static final String NAME_TABLE = "cotacao_lancamento";
  public static final String NAME_SCHEMA = "cotacao";
  public static final String NAME_COLUMN_ID_COTACAOITENS = "id_cotacaoitens";
  public static final String NAME_COLUMN_NUM_LANCAMENTO = "num_lancamento";
  public static final String NAME_COLUMN_ID_COTACAO = "id_cotacao";
  public static final String NAME_COLUMN_QUANTIDADE = "quantidade";
  public static final String NAME_COLUMN_DATA_LANCAMENTO = "data_lancamento";
  public static final String NAME_COLUMN_ID_PRODUTO = "id_produto";
  public static final String NAME_COLUMN_SEQUENCIAL = "sequencial";
  public static final String NAME_FK_COTACAOLANCAMENTO_COTACAOITENS = "fk_cotacaolancamento_cotacaoitens";
  public static final String NAME_FK_COTACAOLANCAMENTO_COTACAO = "fk_cotacaolancamento_cotacao";
  public static final String NAME_FK_COTACAOLANCAMENTO_PRODUTO = "fk_cotacaolancamento_produto";
  public static final String NAME_SEQUENCE = "cotacao.seq_cotacao_lancamento";

  public void salvar(CotacaoLancamento cotacao) throws DAOException;

  public void excluir(CotacaoLancamento cotacao) throws DAOException;

  public CotacaoLancamento carregar(int id);

  public List<CotacaoLancamento> listar(Integer numLancamento);

  public List<CotacaoLancamento> listar(Produto produto, Cotacao cotacao, CotacaoItens cotacaoItens);

  public List<CotacaoLancamento> pesquisaPadrao(Cotacao cotacao, String property, String criterio, Opcao opcao);

  public List<CotacaoLancamento> pesquisaPadrao(Cotacao cotacao, String property, int criterio, Opcao opcao);

  public Integer ultimoNumLancamento();
}
